package com.geaosu.filesselector;

import android.graphics.Color;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class FileListFragmentAdapter extends BaseAdapter {

    private List<FileBean> sList = new ArrayList<>();

    @Override
    public int getCount() {
        return sList.size();
    }

    @Override
    public Object getItem(int position) {
        return sList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        ViewHolder viewHolder = null;
        if (convertView == null) {
            convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.fragment_file_list_item, parent, false);
            viewHolder = new ViewHolder(convertView);
            convertView.setTag(viewHolder);
        } else {
            viewHolder = (ViewHolder) convertView.getTag();
        }
        FileBean fileBean = sList.get(position);
        String extension = fileBean.getExtension();
        String name = fileBean.getName();
        String path = fileBean.getPath();
        boolean select = fileBean.isSelect();

        viewHolder.tvTitle.setText(name);

        File file = new File(path);
        if (file.isDirectory()) {
            // 文件夹
            viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_folder));
            viewHolder.ivArrowRight.setVisibility(View.VISIBLE);
        } else {
            // 文件
            viewHolder.ivArrowRight.setVisibility(View.GONE);
            viewHolder.ivSelect.setVisibility(View.VISIBLE);
            if (select) {
                viewHolder.ivSelect.setImageResource(R.mipmap.select_yes);
                viewHolder.ivSelect.setColorFilter(Color.parseColor("#C52B2D"));
                // viewHolder.ivSelect.setColorFilter(Color.parseColor("#FF0000"));
            } else {
                viewHolder.ivSelect.setImageResource(R.mipmap.select_no);
                viewHolder.ivSelect.setColorFilter(Color.parseColor("#515151"));
            }


            viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_mp3));
//            if (!TextUtils.isEmpty(e)) {
//                switch (e) {
//                    case "ogg":
//                    case "mp3":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_mp3));
//                        break;
//                    // 视频：AVI、mov、rmvb、rm、FLV、mp4、3GP
//                    case "avi":
//                    case "mov":
//                    case "rmvb":
//                    case "rm":
//                    case "flv":
//                    case "mp4":
//                    case "3gp":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_video));
//                        break;
//                    // 图片：
//                    case "png":
//                        break;
//                    case "bmp":
//                        break;
//                    case "jpeg":
//                        break;
//                    case "jpg":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_img));
//                        break;
//                    // 动图
//                    case "gif":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_gif));
//                        break;
//                    // psd
//                    case "psd":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_psd));
//                        break;
//                    // office
//                    case "ppt":
//                    case "pptx":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_ppt));
//                        break;
//                    case "doc":
//                    case "docx":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_word));
//                        break;
//                    case "xls":
//                    case "xlsx":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_excel));
//                        break;
//                    case "pdf":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_pdf));
//                        break;
//                    // 文本
//                    case "txt":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_txt));
//                        break;
//                    // 压缩文件
//                    case "rar":
//                    case "7z":
//                    case "zip":
//                    case "cab":
//                    case "iso":
//                    case "gz":
//                    case "arj":
//                    case "lzh":
//                    case "uue":
//                    case "bz2":
//                    case "z":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_zip));
//                        break;
//                    // java文件
////                    case "java":
////                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_java));
////                        break;
////                    case "jar":
////                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_java_jar));
////                        break;
////                    case "war":
////                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_java_war));
////                        break;
////                    case "tar":
////                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_java_tar));
////                        break;
//                    // c语言
//                    // c++
//                    // Python
//                    // 前端
//                    case "html":
//                    case "html5":
//                    case "htmlx":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_html));
//                        break;
//                    case "css":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_html));
//                        break;
//                    case "js":
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_html));
//                        break;
//                    default:
//                        viewHolder.ivType.setImageDrawable(parent.getContext().getDrawable(R.mipmap.extension_err));
//                        break;
//                }
//            }
        }

        return convertView;
    }

    public void replaceAll(List<FileBean> list) {
        sList.clear();
        sList.addAll(list);
        notifyDataSetChanged();
    }

    public class ViewHolder {
        private ImageView ivType;
        private TextView tvTitle;
        private ImageView ivArrowRight;
        private ImageView ivSelect;


        public ViewHolder(View view) {
            ivType = (ImageView) view.findViewById(R.id.ivType);
            tvTitle = (TextView) view.findViewById(R.id.tvTitle);
            ivArrowRight = (ImageView) view.findViewById(R.id.ivArrowRight);
            ivSelect = (ImageView) view.findViewById(R.id.ivSelect);
        }
    }
}
